<?php
class PeopleRecomendationsController extends AppController {

	var $name = 'PeopleRecomendations';
	var $uses = array('PeopleRecomendation','Person','Recomendation');

    function beforeFilter () {
        parent::beforeFilter();

		// Aplico el Layout segun la Vista o si es AJAX
		if ($this->RequestHandler->isAjax()) {
			$this->layout = 'ajax';
		}else{
			// Cambio la Vista por la del Rol
			$this->layout = strtolower($this->Session->read('VistaActual'));
		}
    }
    
	function index($id_paciente = null, $archivados = null) {
		$this->PeopleRecomendation->recursive = 0;

		if(!$archivados){
			$PeopleRecomendations = $this->PeopleRecomendation->find('all', array(
							'conditions' => array(
												'PeopleRecomendation.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
												'PeopleRecomendation.person_id' => $id_paciente,
												'NOT' => array ('PeopleRecomendation.staterecord_id' => array('2','3'))
											)
			) );
		}else{ // Para mostrar tambien los registros ARCHIVADOS
			$PeopleRecomendations = $this->PeopleRecomendation->find('all', array(
							'conditions' => array(
												'PeopleRecomendation.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
												'PeopleRecomendation.person_id' => $id_paciente,
												'NOT' => array ('PeopleRecomendation.staterecord_id' => array('2'))
											)
			) );
		}

		$this->set('archivados', $archivados);

		$this->set('PeopleRecomendations', $PeopleRecomendations);
		$this->set('id_paciente', $id_paciente);
		$this->layout = 'ajax';

	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid people recomendation', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('peopleRecomendation', $this->PeopleRecomendation->read(null, $id));
	}

	function add($id_paciente = null) {
		if (!empty($this->data)) {

//print_r($this->data);
//exit;

			// Si es una Recomendacion Nueva
			if ($this->data['Recomendation']['recomendacion_nueva'] == "S") { 

				$this->Recomendation->create();

				$this->Recomendation->set(array(
					'name' => $this->data['Recomendation']['name'],
					'publica' => $this->data['PeopleRecomendation']['publica'],
					'contenido' => $this->data['Recomendation']['contenido'],
					'client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
				));
				// Grabo la nueva Recomenacion
				$this->Recomendation->save();

				// Obtengo el ID cargado
				$id_nueva_recomendacion = $this->Recomendation->id;


				// Creo una Nueva Relacion
				$this->PeopleRecomendation->create();

				// Seteo datos que no vienen del Formulario
				$this->PeopleRecomendation->set(array(
						'client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
						'user_id' => $this->Auth->user('id'),
						'person_id'=> $this->data['PeopleRecomendation']['person_id'],
						'recomendation_id'=> $id_nueva_recomendacion
				));

				// Si hubo error
				if (!$this->PeopleRecomendation->save($this->data)) {
					$this->Session->setFlash(__('La Recomendación no ha sido cargada. Por favor, intente nuevamente.', true));
				}
			}

			// Si es una Recomendacion Existente
			if ($this->data['Recomendation']['recomendacion_nueva'] == "N") { 


				foreach($this->data['Recomendationes']['arreglo_id_recomendaciones'] AS $id_recomendacion_aux => $checkeada){
					if($checkeada <> "0"){

						// Creo una Nueva Relacion
						$this->PeopleRecomendation->create();

						// Seteo datos que no vienen del Formulario
						$this->PeopleRecomendation->set(array(
								'client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
								'user_id' => $this->Auth->user('id'),
								'person_id'=> $this->data['PeopleRecomendation']['person_id'],
								'recomendation_id'=> $id_recomendacion_aux
						));

						// Si hubo error
						if (!$this->PeopleRecomendation->save($this->data)) {
							$this->Session->setFlash(__('La Recomendación no ha sido cargada. Por favor, intente nuevamente.', true));
						}

					}
				}
			}

			// Si no hubo error
			$this->Session->setFlash(__('La Recomendación ha sido cargada', true));
			$this->redirect('/people/view/'.$this->data['PeopleRecomendation']['person_id'].'/9');
		}

		if (!$id_paciente) {
			exit;
		}

		$people = $this->Person->find('list', array(
						'conditions' => array('Person.id' => $id_paciente),
						'fields' => array('Person.id', 'Person.full_name')
		) );

		$recomendationes_existentes = $this->Recomendation->find('all', array(
						'conditions' => array('Recomendation.publica' => 'S'),
						'fields' => array('Recomendation.id', 'Recomendation.name', 'Recomendation.contenido'),
						'order' => 'Recomendation.name',
		) );


		$this->set('id_paciente', $id_paciente);
		$this->set(compact('people', 'recomendationes_existentes', 'staterecords'));
	}

	function archivar($id = null, $id_paciente = null, $estado = null) {
		if (!$id) {
			$this->Session->setFlash(__('Recomendación no valida', true));
			$this->redirect('/dashboards');
		}

		if (!$id_paciente) {
			$this->Session->setFlash(__('Paciente no valido', true));
			$this->redirect('/dashboards');
		}

		if (!$estado) {
			$this->Session->setFlash(__('Estado no valido', true));
			$this->redirect('/dashboards');
		}

		$this->PeopleRecomendation->id = $id;
		$this->PeopleRecomendation->set(array(
			'staterecord_id' =>  $estado,
			'user_id' => $this->Auth->user('id'),
		));

		if ($this->PeopleRecomendation->save()) {
			$this->Session->setFlash(__('La Recomendación fue procesada.', true));
			$this->redirect('/people/view/'.$id_paciente.'/9');
		}
		$this->Session->setFlash(__('La Recomendación no pudo ser procesada', true));
		$this->redirect('/people/view/'.$id_paciente.'/9');
	}
}
?>